package com.fh.shop.api.util;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class RedisPool {

    private RedisPool(){

    }

    private static  JedisPool jedisPool;
    // 初始化连接池
    private static void initPool(){
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        //设置连接池总链接的数量
        jedisPoolConfig.setMaxTotal(1000);
        //设置 空闲时 最大连接路径 的数量
        jedisPoolConfig.setMaxIdle(100);
        //设置 空闲时 最小连接路径 的数量
        jedisPoolConfig.setMinIdle(100);
        // 当获取连接的时候，验证连接是否可用
        jedisPoolConfig.setTestOnBorrow(true);
        // 当归还连接的时候，验证连接是否可用
        jedisPoolConfig.setTestOnReturn(true);
        // 创建连接池
        jedisPool = new JedisPool(jedisPoolConfig,"192.168.19.139",7020);
    }

    static {
        // 放到静态块中的方法，只会被执行一次；
        // 在类加载的时候
        initPool();
    }

    // 被外部调用的方法
    // 获取连接池中的连接
    public static Jedis getConnection(){
        return jedisPool.getResource();
    }

}
